package com.example.demo.Service.impl;

import com.example.demo.Service.TaskService;
import com.example.demo.dao.TaskDao;
import com.example.demo.pojo.TaskQuantity;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author 翁佃峰
 * date:2020/11/1 12:58
 */
@Service
public class TaskServiceImpl implements TaskService {

    @Resource
    TaskDao taskDao;

    @Override
    public TaskQuantity getTaskStatusQuantityListByPeriod(String startTime, String endTime) {
        TaskQuantity taskQuantity = new TaskQuantity();
        setTaskQuantity(taskQuantity,startTime,endTime);
        return taskQuantity;
    }

    @Override
    public Map<Integer,TaskQuantity> getTaskStatusListByYear(int year) {
        //创建map集合储存每个月的各个状态的任务数量，键为月份，值为这个月各个状态的数量
        Map<Integer,TaskQuantity> taskQuantityMap=new HashMap<>();
        for (int i = 1; i <= 12; i++) {
            //开始时间为本月一日
            String startTime=year+"-"+i+"-1";
            //结束时间为下月一日
            String endTime=year+"-"+(i+1)+"-1";
            TaskQuantity taskQuantity;
            if (i==12){
                taskQuantity = new TaskQuantity();
                setTaskQuantity(taskQuantity,startTime,(year+1)+"-01-01");
            }else{
                taskQuantity=new TaskQuantity();
                setTaskQuantity(taskQuantity,startTime,endTime);
            }
            taskQuantityMap.put(i,taskQuantity);
        }
        return taskQuantityMap;
    }
    public void setTaskQuantity(TaskQuantity taskQuantity,String startTime,String endTime){
        taskQuantity.setNotStartTask(taskDao.getNotStartTaskList(startTime,endTime).size());
        taskQuantity.setProcessTask(taskDao.getProcessTaskList(startTime,endTime).size());
        taskQuantity.setFinishTask(taskDao.getFinishTaskList(startTime,endTime).size());
    }
}
